package de.au.fi.calc.results;

import java.util.ArrayList;
import java.util.List;

import de.au.fi.calc.criteria.Criteria;
import de.au.fi.domain.Stock;

public abstract class Result {
	
	List<Criteria> criterias = new ArrayList<Criteria>();
	
	public int getResult()
	{
		int result = 0;
		for(Criteria criteria:criterias)
		{
			result = result + criteria.getResult();
		}
		return result;
	}
	
	protected abstract void fillCriterias(Stock stock);
	
	public String log()
	{
		StringBuffer sb = new StringBuffer();
		for(Criteria criteria:criterias)
		{
			sb.append(criteria.getLabel());
			sb.append(":");
			sb.append(criteria.getResult());
			sb.append("    ");
		}
		return sb.toString();
	}

	public List<Criteria> getCriterias() {
		return criterias;
	}
}
